/*! \file exception.cpp
 *	\brief 
 *
 *	created:	2009/11/11
 *	created:	11:11:2009   12:58
 *	filename: 	c:\src\main\libs\core\exception.cpp
 *	file path:	c:\src\main\libs\core
 *	file base:	exception
 *	file ext:	cpp
 *	author:		Vitalii Trubchaninov
 *				venngraydog@gmail.com
 */
#include "core/stdafx.h"
#include "exception.h"

#include "defs.h"
#include "debug.h"

namespace tt{
namespace core{

//////////////////////////////////////////////////////////////////////////
#if defined(TT_DEBUG)
bool Exception::s_debugOnThow = true;
#endif //defined(TT_DEBUG)

//////////////////////////////////////////////////////////////////////////
Exception::Exception()
: m_msg()
{

}

Exception::Exception( const String& msg )
: m_msg(msg)
{

}

Exception::~Exception()
{

}

const String& Exception::msg() const
{
	return m_msg;
}

//////////////////////////////////////////////////////////////////////////
void Exception::Throw( const String& msg )
{
#if defined(TT_DEBUG)
	if (s_debugOnThow)
		TT_DEBUG_BREAK();
#endif //defined(TT_DEBUG)
	throw tt::core::Exception(msg);
}

void Exception::SetDebugOnThrow( bool value )
{
	TT_UNUSED(value);
#if defined(TT_DEBUG)
	s_debugOnThow = value;
#endif //defined(TT_DEBUG)
}

} //namespace core
} //namespace tt
